The present invention relates generally to automation control systems and, more particularly, to a method and apparatus for partitioning industrial control data.
Industrial controllers are special purpose computers used for controlling industrial processes or manufacturing equipment. Under the direction of a stored program, the industrial controller examines a series of inputs reflecting the status of the controlled process and changes outputs affecting the control of the process. The inputs and outputs may be binary (i.e., “on” or “off”) or alternatively analog inputs and outputs taking on a continuous range of values may also be used. The binary inputs and outputs may be represented by single bits of data, the analog inputs and outputs may be represented by multiple bit data words.
The various components of an industrial controller are often spatially distributed about a factory or manufacturing facility to be interconnected by one or more communication networks. These communication networks are characterized by being highly reliable and by delivering data with a minimal and well defined delay, as is required for real-time control. A number of different communication networks are commonly used in the industrial controller art including but not limited to: CONTROLNET™, DEVICENET™, and ETHERNET/IP™ networks whose specifications are published and whose protocols are used broadly by a number of manufacturers and suppliers. These communication networks differ from one another in physical aspects, for example, the type of media (e.g., co-axial cable, twisted pair, light fiber, etc.); the protocols of its operation, (e.g., baud rate, number of channels, word transmission size, use of connected messaging, etc.) and how the data is formatted and how it is collected into standard messages.
A common component of the industrial control system is an input or output (I/O) module which accepts data for an industrial controller from the controlled process or machine, and provides data from the industrial controller to the controlled process or machine. I/O modules are typically remote from the industrial controller and connected via a communications network as described above.
The various I/O modules employed in an industrial control system may generate data at differing intervals and frequencies. If the controller were to interface with the I/O modules asynchronously as each generated its data, the control system would encounter difficulties in synchronizing its control actions, and network traffic may become cumbersome. For instance, a controller may not require data from a particular I/O module at the same frequency as the module generates data. If the I/O module were to send a transaction to the controller each time it updated its data, the controller would be required to process transactions for data it did not need for its current control decision.
To optimize network traffic, translate and proxy between differing network types, and generate a synchronous data transfer frame, a scanner may be used as a physical or logical intermediary between the I/O modules and the controller. The scanner may interface with the I/O modules to collect data at predetermined update intervals, consolidate the data into a single optimized connection packet, and transfer the optimized connection packet to the controller using a single transaction per update interval. Hence, the controller receives data at a controlled and predetermined interval, presumably when it needs the data for control decision purposes.
Upon generating the optimized connection packet, the scanner periodically sends the optimized connection packet to the controller. An optimized connection packet is a block of unstructured data representing the data collected from each of the I/O modules. The data from each module is concatenated in a predetermined order without formatting. The construct of the optimized connection packet is determined in advance. This predetermined construct is used by the controller application and the program development system (i.e., used to develop the controller application) when referencing data within the optimized connection packet. For example, if the output of a particular I/O module resides at bits N-K of the optimized connection packet, the program instructions in the controller application reference exactly these bits for use in the generation of a control decision.
In developing a control application, the application developer must know the mapping of the optimized connection packet. The fixed references to parts of the optimized connection packet are included in the program commands that make up the control application. If the mapping of the optimized connection packet changes, due to the addition or deletion of an I/O module, a change in the order of the I/O modules serviced by the scanner, etc., the fixed references must be updated in the control application so that the controller references the appropriate data.
The fixed reference structure imposed on the optimized connection packet results in various problems for the control application developer with respect to program maintenance and integrity. The documentation of the data used in the programmatic references may be nonexistent or inefficient. Hence, when program modifications are required, the task of updating the programmatic references may be arduous, inexact, and time consuming.
One technique for addressing the difficulties arising from the optimized connection packet involves copying the combined packet into individual locations. These individual locations may then be referenced more easily by the control program. However, the same configuration control issues exist for the translation between the optimized connection packet and the individual locations. This technique also requires program maintenance, introduces a copy delay, and may compromise data integrity.
This section of this document is intended to introduce various aspects of art that may be related to various aspects of the present invention described and/or claimed below. This section provides background information to facilitate a better understanding of the various aspects of the present invention. It should be understood that the statements in this section of this document are to be read in this light, and not as admissions of prior art.